#pragma once
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
typedef int LTDataType;
typedef struct ListNode
{
	LTDataType data;
	struct ListNode* prev;
	struct ListNode* next;
}LTNode;
//初始化链表
LTNode* LTInit();
//创建新节点
LTNode* BuyLTNode(LTDataType x);
//打印链表
void LTPrint(LTNode* phead);
//尾插
void LTPushBack(LTNode* phead, LTDataType x);
//尾删
void LTPopBack(LTNode* phead);
//头插
void LTPushFront(LTNode* phead, LTDataType x);
//头删
void LTPopFront(LTNode* phead);
//计算节点个数
int LTSize(LTNode* phead);
//查找值为x的节点
LTNode* LTFind(LTNode* phead, LTDataType x);
//在pos节点前插入一个值为x的节点
void LTInsert(LTNode* pos, LTDataType x);
//删除pos节点
void LTErase(LTNode* pos);
//销毁链表
void LTDestroy(LTNode* phead);